package com.patentbackend.patentmanage.service;

import com.patentbackend.patentmanage.dto.PatentDTO;
import com.patentbackend.patentmanage.entity.Patent;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.Date;
import java.util.List;
import java.util.Optional;

public interface PatentService {
    Patent createPatent(PatentDTO patentDTO);
    Patent updatePatent(Long id, PatentDTO patentDTO);
    boolean existsById(Long id);
    Page<Patent> findAll(Pageable pageable);
    Page<Patent> search(String keyword, Pageable pageable);
    Optional<Patent> findById(Long id);
    void deletePatent(Long id);
    String uploadPatentFile(Long patentId, MultipartFile file, String fileType) throws IOException;
    byte[] downloadFile(String filePath) throws IOException;
    List<Patent> getAnnualFeeReminders();
}